/**
描述
a 
现在有2副扑克牌，从扑克牌中随机五张扑克牌，我们需要来判断一下是不是顺子。
有如下规则：
1. A为1，J为11，Q为12，K为13，A不能视为14
2. 大、小王为 0，0可以看作任意牌
3. 如果给出的五张牌能组成顺子（即这五张牌是连续的）就输出true，否则就输出false。
4.数据保证每组5个数字，每组最多含有4个零，数组的数取值为 [0, 13]


要求：空间复杂度wei O(1)时间复杂度 时间复杂度 O(nlogn)，本题也有时间复杂度 O(n) 的解法
输入描述：
输入五张扑克牌的值
返回值描述：
五张扑克牌能否组成顺子。
示例1
输入：
[6,0,2,0,4]
复制
返回值：
true
复制
说明：
中间的两个0一个看作3，一个看作5 。即：[6,3,2,5,4]
这样这五张牌在[2,6]区间连续，输出true 

*/


/**
思路：排序后判断最大和最小的值之差是否小于4
*/

import java.util.*;
public class Solution {
    public boolean IsContinuous(int [] numbers) {
        Arrays.sort(numbers);
        int count=0;
        HashSet<Integer> set=new HashSet();
        for(int i=0;i<numbers.length;i++){
            if(numbers[i]!=0){
               if(set.contains(numbers[i])){
                return false;
            } else{
                   set.add(numbers[i]);
               }
            }
            else{
                count++;
            }
            
        }
        if(count==4){
            return true;
        }else if(numbers[numbers.length-1]-numbers[count]<=4){
            return true;
        }else{
            return false;
        }
        
    }
}